/**
 * 反转字符串
 * @param {string} str
 * 给定一个字符串，要求将字符串中的字符反转过来。
 * 给定一个字符串，要求将字符串中的单词反转过来。
 */

// 方法一：使用数组的reverse方法
function reverseStr(str) {
    return str.split('').reverse().join('');
}

// 方法二：使用for循环
function reverseStr(str) {
    let res = '';
    for (let i = str.length - 1; i >= 0; i--) {
        res += str[i];
    }
    return res;
}

/**
 * 
 * @param {*} str 
 * @returns str
 * 输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中，单词间应当仅用单个空格分隔，且不包含任何额外的空格。
 */
function reverseWord(str) {
    let targetStr = str.split(' ').reverse().join(' ').trim();
    // 去除多余空格 \s 匹配任何空白字符，包括空格、制表符、换页符等等 + 匹配前面的子表达式一次或多次
    return targetStr.replace(/\s+/g, ' ')
}

console.log(reverseStr('hello')); // olleh  

console.log(reverseWord(' hello  world ')); // world hello